libxl: Use -device for cd-rom drives
authorAnthony PERARD <anthony.perard@citrix.com>
Tue, 11 May 2021 09:28:06 +0000 (10:28 +0100)
committerJulien Grall <jgrall@amazon.com>
Tue, 15 Jun 2021 12:56:26 +0000 (13:56 +0100)
commit85760c03d664400368a3f76ae0225307c25049a7
treebc116c8bf1d188acb556c16efa978b95b7f20a57
parent4e217db45e83fc3173382306c8b03da86099a25d
libxl: Use -device for cd-rom drives

This allows to set an `id` on the device instead of only the drive. We
are going to need the `id` with the "eject" and
"blockdev-change-media" QMP command as using `device` parameter on
those is deprecated. (`device` is the `id` of the `-drive` on the
command line).

We set the same `id` on both -device and -drive as QEMU doesn't
complain and we can then either do "eject id=$id" or "eject
device=$id".

Using "-drive + -device" instead of only "-drive" has been
available since at least QEMU 0.15, and seems to be the preferred way as it
separates the host part (-drive which describe the disk image location
and format) from the guest part (-device which describe the emulated
device). More information in qemu.git/docs/qdev-device-use.txt .

Changing the command line during migration for the cdrom seems fine.
Also the documentation about migration in QEMU explains that the device
state ID is "been formed from a bus name and device address", so
second IDE bus and first device address on bus is still thus and
doesn't matter if written "-drive if=ide,index=2" or "-drive
ide-cd,bus=ide.1,unit=0".
See qemu.git/docs/devel/migration.rst .

Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
Reviewed-by: Jason Andryuk <jandryuk@gmail.com>
tools/libs/light/libxl_dm.c